package com.itfenghuang;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

public class A01_ThreeWeek {
    /**
     * 1.IO流
     *  1).File类
     *      文件和文件夹的操作类
     *      常用方法:创建文件和文件夹的方法,删除,isFie
     *      难点:删除某一个目录  递归
     *      统计一个目录夏下各种类型的个数
     *  2).IO流操作的文件是哪的?
     *      本地磁盘中
     *  3).IO流的分类
     *      流向分和类型分
     *      字节流:
     *          字节输入流:FileInputStream
     *          字节输出流:FileOutputStream
     *      字符流:
     *          字符输入流:FileReader
     *          字符输出流:FileWriter
     *      缓冲流:
     *          字节流:
     *              输入流:BufferedInputStream
     *              输出流:BufferedOutputStream
     *          字符流:
     *              输入流:BufferedReader
     *              输出流:BufferedWriter
     *  4).文件复制的4中方式
     *  字节流:    一次读写一个字节/一次读写一个字节数组
     *  字节缓冲流:一次读写一个字节/一次读写一个字节数组
     *  5).字符流
     *  6).转换流
     *      字符输入转换流InputStreamReader
     *      字符输出转换流OutputStreamWriter
     *  7).对象操作流
     *      ObjectInputStream:反序列化流
     *      ObjectOutputStream:序列化流
     *  8).Properties
     *  键值对集合
     *  Hashtable用法和HashMap类似
     *  HashMap线程不安全
     *  HashTable线程安全
     *
     *2.多线程
     *  1).多线程的三种实现方式
     *  2).Thread类中的常用方法
     *  3).线程安全问题
     *      同步技术:同步代码块,同步方法,lock锁
     *      死锁
     *  4).生产者和消费者(等待唤醒机制)
     *  5).生命周期
     *      新建,就绪,运行,阻塞,死亡
     *3.网络编程(在网络上进行数据的传输)
     *  1.网络编程三要素
     *  2.代码怎么写
     *  UDP DatagramSocket
     *  TCP Socket ServerSocket
     *
     */
    public static void main(String[] args) throws IOException {
        //1.创建字节输出输入流
//        FileInputStream fis = new FileInputStream("D:\\it\\a.txt");
//        FileOutputStream fos = new FileOutputStream("D:\\it\\h.txt");
//        //2.循环读写
//        //一次读取一个字节数组
//        byte[] bys=new byte[1024];
//        int len;
//        while ((len=fis.read(bys))!=-1){
//            fos.write(bys,0,len);
//        }
//        //3.释放资源
//        fis.close();
//        fos.close();
        Properties prop = new Properties();
        prop.setProperty("小美","日本");
        prop.setProperty("小深","日本");
        prop.setProperty("小雪","叙利亚");
        System.out.println(prop);
        System.out.println(prop.getProperty("小雪"));

    }
}
